It is generally desirable to locate and correct defects that adversely affect the operation of software products. Some types of software products operate in distributed computing systems, which are homogeneous or heterogeneous computing systems that provide distributed access to data and/or computing functions/entities by multiple computing nodes, often in different locations. Examples of distributed computing systems include but are not limited to: Web searching services, file organization systems such as distributed databases, and enterprise computing systems.
Three models are often recognized for testing software products that operate in distributed system environments: (1) a global tester model that provides centralized test scenario management (for example, global state management and test scenario execution and control) for distributed system entities; (2) a global tester model that provides partially centralized test scenario execution and control; and (3) a distributed tester model having multiple, distributed, independent test components that dynamically agree on test scenario management, execution, and control.
Although the distributed tester model has benefits in the areas of scalability, efficiency, and ease of integration, it has been difficult to provide a testing methodology that ensures dynamic and adaptive coordination amongst distributed test components that execute distributed test scenarios.